科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道如何在Platform 8中使用RDBMS认证提供者

如何在Platform 8中使用RDBMS认证提供者

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

Platform 8 中包含了基于 JAAS 安全的 RDBMS 认证提供者( Authentication Provider )的实现。

来源:dev2dev 2007年10月16日

关键字: 应用 BEA 技术 中间件

  • 评论
  • 分享微博
  • 分享邮件

RDBMS认证提供者的适用范围

  Platform 8 中包含了基于 JAAS 安全的 RDBMS 认证提供者( Authentication Provider )的实现。但这个实现需要 Portal 8 的 License ,所以此认证提供者只对购买了 Portal 或 Platform License 的用户有效;而不能使用在购买了 Server 或 Integration License 的用户。

RDBMS认证提供者的配置

  RDBMS 认证提供者所需要的资源( jar )文件位于 %WL_HOME%/server/lib/mbeantypes 目录下,文件名为: rdbmsAtnProvider.jar 。在安装了 Portal 产品或 Platform 产品后就能在相应目录下找到这个文件。

  配置步骤如下:

      1.启动 Domain

      使用 Domain 对应的启动脚本 StartWebLogic.cmd/StartWebLogic.sh 来启动 Domain

      2.启动 WLS 管理控制台

      打开 Web Browser (如 IE )访问 WebLogic Server 管理控制台对应的URL
      http://<Server>:<Port>/console 进入

      3.进入认证提供者配置页面创建 RDBMS 认证提供者

      a) 从控制台左边的选择 Security à Realms à Providers à Authentication 进入认证提供者配置页面

    如何在Platform 8中使用RDBMS认证提供者图-1

      b) 点击 Configure a new RDBMSAuthentication… 链接创建 RDBMS 认证提供者

    如何在Platform 8中使用RDBMS认证提供者图-2

      c) 输入RDBMS认证提供者的名称及选择其认证策略后选择“Create”

    如何在Platform 8中使用RDBMS认证提供者图-3

      认证策略( Control Flag )设置了认证提供者的工作策略包括: REQUIRED 、 REQUISITE 、 SUFFICIENT 、 OPTIONAL

    • REQUIRED ---- 认证必须成功,即使不成功也调用认证提供者列表中的下一个认证提供者(若无下一个认证提供者则返回)
    • REQUISITE ---- 认证必须成功,若不成功则立即返回;若成功则调用认证提供者列表中的下一个认证提供者(若无下一个认证提供者则返回)
    • SUFFICIENT ---- 认证非必须成功,但一旦成功则立即返回;否则调用认证提供者列表中的下一个认证提供者(若无下一个认证提供者则返回)
    • OPTIONAL ---- 认证非必须成功,成功与否都调用认证提供者列表中的下一个认证提供者(若无下一个认证提供者则返回)

      若你的系统只使用了一种认证提供者那策略设置为任何一种都可以。

      d) 设置 RDBMS 认证提供者的 JDBC 连接设置属性

    如何在Platform 8中使用RDBMS认证提供者图-4

      4. 删除缺省的认证提供者 DefaultAuthenticationProvider

    如何在Platform 8中使用RDBMS认证提供者图-5

      5. 在数据库中加入系统初建时创建的记录,这些记录包括(在 Oracle 中创建表及创建初始记录的 SQL 见附件 rdbms-data.sql 文件):

    • 用户(管理员用户)
    • 组(Administrators 、 Portal 所需的组、 Integration 所需的组)
    • 用户和组间的关系
    • 组和组间的关系

使用自定义表结构的实现

  若使用系统自带的 RDBMS 认证提供者但又希望使用自定义的表结构时怎么办呢?

  答案是绝对没问题,展开 rdbmsAtnProvider.jar ,你会发现在展开的根目录下有一个 Properties 文件 rdbms-provider.properties 。 RDBMSProvider 如何从数据库中提取、增加、修改用户和组的信息就是通过此文件中配置的属性来完成的,每个 Provider 中的数据库操作都对应文件中一个 Properties ,如:

  sql.getUser=SELECT USER_ID, PASSWORD FROM USER_SECURITY WHERE USER_NAME=?

  这一行指定了 Provider 中提取用户的操作(一个属性) “ sql.getUser ”对应着一段 SQL 语句“ SELECT USER_ID, PASSWORD FROM USER_SECURITY WHERE USER_NAME=? ”,这个语句在 Provider 实现中被作为 PreparedStatement 的 SQL 语句来执行,“ ? ”对应传入的参数。基于这样的实现,你修改此 Properties 文件中的 SQL 语句就能支持客户化的表结构。

  步骤:

  • 备份 rdbmsAtnProvider.jar 文件
  • 展开 rdbmsAtnProvider.jar 文件
  • 修改 rdbms-provider.properties 文件修改 Provider 执行的操作对应的 SQL 语句
  • 重新打包 rdbmsAtnProvider.jar 文件并覆盖原文件

关于用户密码的加密

  缺省带的 RDBMS 认证提供者对用户的密码进行了加密操作,其加密程序如下:

import java.security.MessageDigest; 
   import weblogic.utils.encoders.BASE64Encoder; 

  …
  
  private MessageDigest messageDigest; 
  private BASE64Encoder encoder; 
  private String encodePassword(String password)
 
 { 
  return encoder.encodeBuffer(messageDigest.digest(password.getBytes())); 
 } 
 … 

dot dot dot

dot

  

    • 评论
    • 分享微博
    • 分享邮件
    闂傚倷绶¢崣搴ㄥ窗閺囩偐鏋庨柕蹇嬪灪婵ジ鏌曡箛瀣偓鏍綖閿燂拷

    濠电姷顣介埀顒€鍟块埀顒€缍婇幃妯诲緞閹邦剛鐣洪梺闈浥堥弲婊勬叏濠婂牊鍋ㄦい鏍ㄧ〒閹藉啴鏌熼悜鈺傛珚鐎规洘宀稿畷鍫曞煛閸屾粍娈搁梻浣筋嚃閸ㄤ即宕㈤弽顐ュС闁挎稑瀚崰鍡樸亜閵堝懎濮┑鈽嗗亝濠㈡ê螞濡ゅ懏鍋傛繛鍡樻尭鐎氬鏌嶈閸撶喎顕i渚婄矗濞撴埃鍋撻柣娑欐崌閺屾稑鈹戦崨顕呮▊缂備焦顨呴惌鍌炵嵁鎼淬劌鐒垫い鎺戝鐎氬銇勯弽銊ф噥缂佽妫濋弻鐔碱敇瑜嶉悘鑼磼鏉堛劎绠為柡灞芥喘閺佹劙宕熼鐘虫緰闂佽崵濮抽梽宥夊垂閽樺)锝夊礋椤栨稑娈滈梺纭呮硾椤洟鍩€椤掆偓閿曪妇妲愰弮鍫濈闁绘劕寮Δ鍛厸闁割偒鍋勯悘锕傛煕鐎n偆澧紒鍌涘笧閹瑰嫰鎼圭憴鍕靛晥闂備礁鎼€氱兘宕归柆宥呯;鐎广儱顦伴崕宥夋煕閺囥劌澧ù鐘趁湁闁挎繂妫楅埢鏇㈡煃瑜滈崜姘跺蓟閵娧勵偨闁绘劕顕埢鏇㈡倵閿濆倹娅囨い蹇涗憾閺屾洟宕遍鐔奉伓

    重磅专题
    往期文章
    最新文章